Minecraft的无限可能——红石:基础与生电

<对生存、生电技术的教学与运用>

序言

“让我跟你谈谈我的第一个红石作品吧。 在开始玩后不久,我就已经发展出了一座巨大的小麦田。每当田里一半左右的小麦成 熟后,我就去收割小麦,再重新种植。这很快就成了一件苦差事。所以我就使出了我 的红石工程技术来消灭这个问题,看招!”

​ ——邓肯 · 吉尔

​ 红石是一个无比有趣的系统。由红石组成的庞大的生电机器,造福着无数“懒人”玩家。譬如能无限获取铁锭的刷铁机(8核心3051铁锭/h效率刷铁机和双体AI跳跃刷铁机 ),能无限获取绿宝石的袭击农场(堆叠袭击农场V6 979,000物品/h)等等。数电/模电架构而成的机器,譬如能在游戏中玩游戏的计算机(64位红石计算机)(1Hz红石计算机)、人工智能(神经网络手写数字输入识别)等等。我的世界玩家利用红石,创造了数不胜数的奇迹。

​ 还等什么?欢迎来到红石的世界!

建议

​ 红石是一个复杂的系统,我们需要花费许多时间和精力去学习。许多5年,7年,甚至10年的老玩家也不一定精通红石。这里,编者给各位一些建议。

​ 看再多教程,也不及看完一遍后在游戏内实践。新建一个存档,按着教程一步一步实践!向老玩家讨取经验,与他们一起设计机器电路,你可能会发现你平常没有注意过的细节。在网上下载机器存档,不能仅止步于借用,拆解它,理解他,尝试自己创新、变革。加入红石交流社区,看看老玩家在研究些什么。看看Bilibili上的机器,尝试回答作者、观众使用中的问题。遇到问题,尝试在Minecraft Wiki上查找资料。遇到了Wiki百科的错误,尝试改正它!希望你能学好红石!

国内知名红石交流论坛:

TIS 开黑啦服务器

TIS Discord群组

红石生存技术档案馆

我的世界版本区分

|我的世界

​ |BE(Bedrock Edition) 基岩版 C++语言编写,可以在任意设备上游玩(安卓,iOS,iPadOS,MacOS,Windows,Linux)

​ |官方正版 与JE捆绑销售,买断制,可以加入任何服务器;部分道具,模组,光影付费。

​ |网易手机端/电脑端 中国网易公司代理,中国大陆免费,部分道具,模组,光影付费,可以加入网易租凭服/联机

​ |JE(Java Edition Java版 Java语言编写,只能在PC设备上游玩

​ |官方正版 与BE捆绑销售,买断制,可以加入任何服务器;所有道具,模组,光影免费

​ |网易电脑端 中国网易公司代理,中国大陆免费,部分道具,模组,光影付费,可以加入网易租凭服/联机

​ |第三方离线版本(盗版) 第三方启动器(HMCL,PCL2,BakaXL)支持,可以游玩除开启正版验证服务器意外其他服务器

两个版本互相独立,部分特性不相同,本教程都讲解Java版红石相关知识。

1. 基础红石定义/获取/机制/特性

​ 本章将讲解红石的基本定义,机制与特性。设计简单机器,为后面生电机器设计做准备。

​ (部分图片选自 TIS 发布的视频截图以及 DQ大冲同学 的我的世界教学书)

1.1 定义

1.1.1狭义

​ 红石狭义上具体指 红石粉

1.1.2广义

​ 泛指所有 红石电路红石机器 ,以及 红石相关领域

1.1.3 领域划分

​ 红石分为多种领域,主要关系图如下:

|红石领域

​ |生电:生存电路科技 泛指为了更好的获取材料以及更好生存所建造的机器

​ |数电:数字电路科技 泛指在游戏中建造数字电路机器。红石电脑就属于此范畴。

​ |模电:模拟电路科技 泛指与模拟电路相关的红石电路

​ 本教程以 生电 为主要教授目标,让玩家体会红石的魅力。

1.2 红石原料——红石粉

“红石矿石深藏于地表之下,低于16层的地方。它们通常以4-8个方块组成的矿团形式生成,当你使用铁镐或更好的镐开采时,每一块都会掉落4-5个红石粉和一些经验。当然,使用时运魔咒的镐可以得到更多红石粉。”

——邓肯·吉尔

​ 想要运用红石,必须先获取红石。

红石矿石(Redstone Ore)是开采后可获得红石粉矿石方块。

深层红石矿石(Deepslate Redstone Ore)是以深板岩作为容矿岩的红石矿石变种,于深板岩间代替红石矿石生成。

1.2.1 生成

​ 自然生成红石矿石会以矿团的形式生成于主世界高度为Y=-64至16的石头之间,矿团大小为1-8个方块。生成方式包含两种:一种是在Y=16以下随高度均匀分布,每区块尝试生成4次;另一种是在Y=-32以下随深度递增,每区块尝试生成8次。因此基岩层附近红石矿石最多。生成于深板岩凝灰岩间的红石矿石会被替换为深层红石矿石。

1.2.2 获取

​ 红石矿石和深层红石矿石的物品形式只能通过使用具有精准采集的工具挖掘破坏对应方块获得。

1.2.3 破坏

​ 挖掘红石矿石的合适工具是镐。红石矿石需要铁镐或品质更好的镐来挖掘,否则挖掘时间将延长且不会掉落。

方块 红石矿石 深层红石矿石
硬度 3 4.5
工具

挖掘用时[注1]:

红石矿石 深层红石矿石
徒手 *15 *22.5
木质 *7.5 *11.25
石质 *3.75 *5.65
铁质 0.75 1.15
钻石质 0.6 0.85
下界合金质 0.5 0.75
金质 *1.25 *1.9

[注1]: 没有使用已附魔工具时的破坏时间,单位:秒。更多信息详见挖掘#挖掘速度

[注2]:时间前带 * 号的,代表无法成功采集。

​ 没有被具有精准采集的工具挖掘破坏时,红石矿石被破坏后会掉落4-5个红石粉和1-5点经验,挖掘工具的时运魔咒每有1级,红石粉的掉落数量上限增加1,时运III时为4-8个。

​ 被具有精准采集的工具挖掘破坏时,红石矿石被破坏后会掉落自身。

光照

​ 当鼠标单击、方块更新[仅基岩版教育版]或被大多数可移动实体(不包括潜行中的玩家和物品弹射物)接触时,红石矿石会产生9级的亮度以及红石粒子。该效果会一直持续到红石矿石接收到随机刻为止(平均为68.27秒)。该效果实际上不会产生任何的红石信号,但这个改变可被方块更新感应器侦测器探测到。

1.2 机制

1.2.1 激活

​ 机械元件和红石元器件可被电源、充能方块和传输元件以特定的方式激活,引发机械元件和红石元器件的反应 (如活塞推动方块,开门, 红石火把熄灭等)。 有些机械元件只会在刚被激 活的瞬间有所反应,直到取 消激活并再激活之前都不会 再有所反应(如命令方块执行命令,投掷器与发射器发 射物品,音符盒播放一个音 符)。其他机械元件会在激 活时始终保持状态,直到取消激活(红石灯保持点亮, 门保持开启,漏斗保持锁定 状态,活塞保持伸出等)

1.2.2 位置

​ 一个方块占据一个正方体的空间,正方体有6 个面。也就是说与一个方块的六个面直接接触 的方块有6个,称之为“与该方块毗邻的方 块”,简称毗邻。 一个方块的毗邻和毗邻的毗邻(即与这个方块 的曼哈顿距离为两格以内的方块),通称为这 个方块的二阶毗邻。一个方块的毗邻的毗邻共 有19个方块(包括它本身),二阶毗邻共有25 个方块(包括它本身)。 四周一般指的是与该方块东西南北四个面相接 触的4个方块。 红石线、红石火把等方块需要附着在其他方块 上,一旦所附着的方块被破坏,它本身也会掉 落。它们所附着的方块简称为它们的附着。 一些电源和传输元件有它的指向。中继器、比较器的指向就是输出端所朝向的方块,红石火把的指向是正上方的那一个方块,红石粉的指 向通常与它的纹理的朝向相同,但也有特殊情况。

(出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼· 闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用 语,用以标明 两个点在标准坐标系上的绝对轴距总和。)

1.2.3 条件/触发/机制

1.2.4 方块更新

1.2.5 卡顿

1.2.6 时间单位

​ Minecraft中,基本时间计量单位有游戏刻(gt)、红石刻(rt)、随机刻。

  • 游戏刻(gametick,gt):一般来讲,在不掉刻游戏无卡顿(TPS/MSTP=20的情况下),现实世界1秒等于20游戏刻。

  • 红石刻(redstonetick,rt):红石刻是红石元件相应的最小单位,现实世界1秒等于10红石刻。

  • 随机刻:随机刻影响了游戏中作物及植物生长。

1.2.7 微时序

​ 微时序是指1游戏刻之内,游戏所进行的运算的内容、过程。我的世界代码运行层面的最小周期。

(众多微时序中最为重要的8个微时序)

顺序 名称 概述
1 世界更新(WTU) 游戏进程/世界时间前进一刻,秒针滑动一下。
2 延迟事件(NTE) 前面游戏刻已经决定将要处理的事件,以及处理红石元件的延迟。
3 随机刻和天气(RTC) 世界可能开始下雨,被随机刻进程选中的作物进入下一个生长阶段。
4 村庄运算(V) 运行村庄相关的运算,包括猫咪是否生成。
5 方块事件(BE) 游戏记录被激活的活塞需要将前面的方块推到特定的位置,按照特定的顺序,在这些位置填上B36方块。(B36方块:方块标签没有扁平化之前的编号)
6 实体更新(EU) 游戏判断实体相关的事件。
7 方块实体(TE) Minecraft在这个时候开始把预定位置的b36,按照某个特定顺序,变回方块原本的样子。
8 玩家操作(NU) 游戏处理玩家做出的各种操作。

1.3 红石信号、充能的等级及程度

​ 红石信号有等级之分,会衰减,增强;充能也有程度,有强,有弱。这些机制会在后续的机器电路设计中变得十分重要。

1.3.1 红石信号

​ 红石信号强度/等级最低为0,最高为15。红石粉/动力铁轨等元件每前进一格,强度衰减1级。也就是说,不增加中继器的接通了电源的红石粉最远可以传输15格,第16格便不再具有能量。我们可以调整容器内储物的数量,连接红石比较器或使用测重压力板及阳光探测器输出精准的信号等级。

1.3.2 充能等级

     红石信号的充能程度分为 强充能与弱充能两种.
  • 强充能的方块可以激活毗邻的机械元件和红石元器件。实体方块可以被电源及中继器、比较器强充能。被强充能的方块所表现性质和红石块大体相同,但是红石块不是实体方块,且可以改变红石线的形状和指向、向红石比较器边侧输入信号[仅Java版], 而强充能方块不能。

  • 当实体方块仅被红石线充能,我们称这个方块被弱充能。弱充能与强充能的区别在 于,弱充能方块无法激活毗邻的红石线。

    充能方块无法再去充能其他方块,只有电源和传输元件才可以去充能一个方块。

1.4 红石元件的分类

​ 红石元件是在红石电路里具有一定使用目的的方块,大致分为三个大类。

  • 电源:为整个红石电路部分或部分红石电路部分提供红石信号。如:红石火把、按钮、拉杆、红石块、压力板等。
  • 传输元件:将红石信号或增加或保持或衰减地从一部分传输到另一部分。如:红石粉、红石中继器、红石比较器等。
  • 机械元件:接受信号并作出反应(例如移动、发光等)。如:活塞、红石灯、发射器等。

1.4.1 电源

​ 电源起到了为整个红石电路部分或部分红石电路部分提供红石信号的作用。

红石火把

​ 红石火把是稳定信号源,输出信号强度15。可直接产生强充能信号源,但不能对红石火把的附着及其附着的毗邻产生强充能。产生固有的延迟2gt。

  • 充能状态:红石火把顶部亮起,产生信号,为默认普通方块。
  • 熄灭状态:当红石火把的附着被强充能,那么红石火把将会熄灭,不产生信号。

​ (红石火把的两种状态,反相)

按钮

​ 按钮附着在完整方块上,如果它的附着破坏,它会以掉落物的形式掉落。

​ (不同类别的按钮)

​ 不同类别的按钮信号持续时间不同。

类别 持续时间
石质 10rt=1s
木质 15rt=1.5s
  • 石质按钮不可以被射在其表面的箭触发,而木质按钮可以。
拉杆

​ 拉杆默认放置后不输出信号,只要玩家右键拉下拉杆,拉杆会激活元件,产生15级信号。拉杆可以一直激活元件,直到玩家再次右键它,拉下拉杆。

红石块
压力踏板

​ 压力踏板分为这几类:

  1. 普通压力踏板 固定信号等级15

    • 石制压力踏板:以各种石头制成,可以被除掉落物以外任何实体激活。

    • 木质压力踏板:以各种木头制成,可以被任何实体激活。

  2. 测重压力踏板 根据掉落物数量给定对应信号等级

    • 轻型测重压力踏板:
    • 重型测重压力踏板:

1.5.2 传输元件

1.5.3 机械元件

1.6 基础机器设计

生电技术

1.7 基础生电

1.7.1 村民的利用

村民介绍

“除玩家自己的创造,村庄是Minecraft中最忙忙碌碌、生机勃勃的地方了。貌似挺友善的村名们居住在其中,投身于不同的职业:农民、渔夫、制箭师、屠夫、牧师、盔甲商,还有许多许多。其中还包括我最喜欢的:傻子。“

​ ——Marsh Daives

​ 村民分为几种职业,各自绑定他们的工作方块。农民绑定堆肥桶,制箭师绑定制箭台……可如此之多职业,只有农民渔夫可以提供生产资料,可真正能生产食物的只有农名一种。村民的利用是所有生电实践的开始,在这里,玩家可以初次体验到生电的魅力。

小知识:

在1.14掠夺更新后,每当玩家保护村庄,击败掠夺者时,玩家可以敲钟来给予敌人发光效果,村民同样也会敲钟。

村民的大规模繁殖 ——村民繁殖机

区别于别的被动生物,你不能仅仅用食物来使它们繁殖。必须有如下条件:

条件名称 概述 繁殖所需条件
食物(雪、马铃薯、面包、甜菜、胡萝卜) 食物存储在村民隐藏的背包中,如果一位食物充足的村民发现了一位没有食物的村民,他会把食物分享给他。 3个面包/12个马铃薯/12个甜菜/12个胡萝卜
床位 村庄中的村民每人绑定一张床,如果他们有繁殖意愿,则会为子代小村名预定一张床。 村民能寻路到的床位数>村民数;存在未占领的床
意愿 满足上述条件,村民各自消耗一些食物,生出小村民,并进入5分钟冷却时间,小村民自动占领预定的床位。 None

​ 最实用的架构:【超实用系列-简单全自动村民繁殖一体机-Minecraft1.14我的世界 By 黑山大叔】

​ 上层两位村民负责种植食物,晚上的时候他们尝试靠近床来睡觉。在栅栏前看到彼此,并开始分享食物。可由于栅栏高1.5格,所以食物被栅栏拦截掉入下层。食物被下层村民接受,满足上述三个条件,产生繁殖意愿,生出子代小村民。小村民寻路到了床,想要接近它,被活板门欺骗,掉入生长室生长。长大后被挤到活板门上,推到等候室。玩家可以用矿车接走村民,运到要用的地方。

村民繁殖原理详细讲解

村民的打折降价交易机制开发与运用 ——村民骨折机
村民的交易机制开发与运用 ——村民交易所
村民的流言/恐吓机制开发与运用 ——刷铁机
流言刷铁机 不推荐

注意:流言刷铁机不需要运用到怪物,但是效率低下,只能运用在例如和平生存挑战中。

| 这个特性被gossip发现/运用。

​ 每个村民每5秒观察一下周围16格范围内铁傀儡数量,如果数量不足,他会每1分钟向周围村民喊话,称村庄铁傀儡数量不足,想要召唤铁傀儡。如果他附近10格以内,其他村民也这么想,那么他们就可以成功召唤出一只铁傀儡。

恐吓刷铁机

注意:该刷铁机只能在JE中运用。

| 这个特性被panic发现/运用。

​ 如果村民发现周围有僵尸系生物,或灾厄村民等怪物,或自身收到攻击,村民受到恐吓,进入惊慌状态。这时他会每5秒向周围村民喊话称想要召唤铁傀儡。这时,只要两位村民也有相同想法,便可以召唤一只铁傀儡。

要求
20分钟内睡过觉。
不是傻子村民。
有一份工作。 1.14~1.15

在空中摆上三张床,在一段距离(见下文 恐吓半径)外放置恐吓源,在空中建造铁傀儡刷新平台。

恐吓半径 不同种类恐吓源有效恐吓下恐吓源足部到村民足部直线距离。

恐吓源名称 恐吓半径
僵尸、尸壳、溺尸、恼鬼、僵尸村民 8格
卫道士 10格
唤魔者、幻术师 12格
掠夺者 15格

注意:恐吓源不可以持续恐吓村民,这样村民无法睡觉。我们可以用气泡柱上下移动恐吓源,让村民与恐吓源短时间内不接触,哪怕时间再短,村民也可以完成睡觉的条件。请在10秒内将铁傀儡移出村民检测范围内,这样才能提高效率。每3位村民保持一定距离,

村民分支农民种植作物机制的开发与利用。 ——自动农场

1.7.2 刷怪机制/设计

刷怪范围

​ 以玩家为中心,24格球形范围内,不会刷怪。 以玩家为中心128格范围内,为刷怪最大范围,在此范围外不会刷怪,怪物离开这个范围也会消失(除命过名的怪物,随遗迹一起生成的怪物,捡了物品的怪物,坐了载具的怪物)。在距离玩家32格到128格内的怪物,不会移动,且会随机消失。如果有了目标,它们也会移动。

刷怪数量上限

​ 单人游戏刷怪上限为70,多人游戏依据玩家间距离以及数量来定。

光亮/亮度

​ 刷怪区域内不得有任何光亮,否则怪物无法刷新(某些怪物不一样)

高度/环境

​ 不同怪物对刷怪空间以及环境有不同要求。例如:僵尸必须在高2格的空间才能生成,而末影人要3格。又例如:蜘蛛刷新范围3x3区域内,必须无任何方块。

刷怪游走

​ 在选定初始点后(见LC值),刷怪坐标会在x,y水平坐标上随机偏移。每个方向最多五格,选中第一个点后,会检查该方块表面是否可以刷怪,光照等级。若满足条件,则生成一只怪物。如不能重复上述操作,最多游走4次。每个初始点上,进行3轮上述操作。如果游走时遇到完整方块,则刷怪立即终止。

​ 所以刷怪塔刷怪平台脚的那一层,不能有实体方块。刷怪游走最多5个,最多4次。则刷怪平台上的遮光平台向外延伸4x5=20格,不过一般为15格,将刷怪塔内光照强度将为0即可。

LC值 !不确定

​ LC值与Y值密切相关。LC值越高,效率越低,LC值越低,相反。在每个gt内,游戏选取任意x,z值作为刷怪初始点的水平坐标。游戏接下来检查该水平坐标最高的方块,在这个方块上随机选取一个坐标作为刷怪初始点,若该坐标为实体方块,则刷怪立即终止。如果在世界最低点(y=0)(以老版高度为例)做一个刷怪平台,其上方无任何方块,则最高方块为0,最高y值加1为y=1。选取水平坐标后,y值会在0与1之间随机选取。则该刷怪平台刷怪成功率为1/2,y值为1平台则为1/3。

刷怪塔设计类别:被动刷怪塔
游走刷怪塔
寻路刷怪塔
刷怪塔设计类别:主动刷怪塔
水流刷怪塔
移动地板刷怪塔
炸怪塔

​ 什么机器最高压,劲爆?肯定是TNT炸怪塔!Java版独有特性TNT跨领域应用,得益于无限的TNT以及超高的伤害,可以在短时间内击杀生成的怪物。把TNT复制机压缩在一个区块内,怪物在地面生成,TNT高频复制TNT,TNT落入水中,不破坏方块但能造成伤害,击杀生成的怪物。

“TNT炸怪塔短时间内是单维度刷怪塔的主宰。” ——CrazyMax

“TNT炸怪塔的局限只能是怪物几个gt死亡动画对刷怪数量上限的短时间占用了。” ——国内TIS服务器红石玩家

Fallen_Breath的TNT炸怪塔设计

光照更新抑制刷怪塔

​ 在原版我的世界,1.14(java)以后,光照更新计算独立为一个线程。区别于1.14以前混合在游戏主线程的光照更新计算,这样无论如何计算可以与主线程同步,避免客户端的卡顿。

​ 我们首先需要知道什么是光照更新计算:

​ 众所周知,我的世界有一个特性为光照强度。当我们放置一个火把,点亮了周围漆黑的区域,这时,光照强度由0变为15级等。这会影响作物生成,怪物刷新。所以,我们可以认为,光亮的变化带来了光照更新。我们拆去火把,亮度又变为0。光照更新就是来处理这些光照强度的变化所带来的计算。随着游戏越来越庞大复杂,光照更新无时无刻都在计算着。可是受限于电脑性能,有的时候计算任务太多便会导致计算繁忙而带来卡顿。

​ 由于刷怪数量上限的限制,刷怪塔始终不能突破效率瓶颈。这都是因为传统刷怪塔从怪物生成到死亡耗费时间太多,一直占用着刷怪上限,游戏一直无法生成新的怪物。如何解决?如果无穷的优化无法改变如今的窘境,那么彻底的变革才是唯一的出路。让怪物直接生成在地狱门门框上,直接它们传送入地狱以解除主世界刷怪数量限制是个好主意,可难点在于,地狱门有亮度,怪物不可能在上面刷新。我们运用 光照更新抑制器,在高空推动大量方块,造成天空盒亮度对地面亮度改变时所造成的光照更新计算。大量的计算使服务器与客户端不堪重负,无法计算地狱门所造成的亮度,而欺骗服务端与客户端,使它们认为地狱门亮度为0,而在上面生成怪物。如果期间我们强行加载新的区块,会导致游戏及服务器崩溃,使地狱门亮度将永远为0。怪物在上面刷新,立即传送入地狱,解除主世界刷怪数量限制。在地狱处死怪物,也可以让怪物死亡动画不再波及刷怪速率。这种刷怪塔,可以让效率达到惊人的百万级物品,只要设备性能优秀,我们可以无限堆叠,让效率接近无限。

比较高效的光照更新抑制刷怪塔设计

详细原理讲解

总结

1.8 进阶生电

1.8.1 资源获取
原木
石头

​ 当水源与岩浆相遇,便可以生成园石/石头。但是玩家一般会直接生成石头,因为石头挖掘时间比园石短。

生成物品 条件
园石 岩浆与含水方块处于同一水平高度,中间相隔一格以生成石头。
石头 含水方块的高度比岩浆高一格,含水方块下留空来生成石头。

注意:岩浆最长流动3格!

​ 生电玩家通常使用全自动机械。目前全自动刷石机主要分为以下几种:

  • 生炸垂直式刷石机
  • 活塞推动聚合式刷石机
  • B36方块垂直式刷石机

生炸垂直式刷石机:TNT复制机复制TNT,TNT降落在由防爆方块或含水方块构成的防爆平台上,TNT破坏垂直生成的园石,破坏后重新生成园石,掉落的石头被漏斗收集。一直重复上述过程。可参考以下经典设计

活塞推动聚合式刷石机:多个刷石模块旋转复制,生成园石后被活塞推出,聚合至中央。使用TNT复制机复制TNT集中爆破,掉落物被漏斗收集。

小知识:

你知道吗?活塞推动聚合式刷石机这样的架构打破了世界纪录! 视频链接

金子
甘蔗
红石
其他

1.9 高级生电

1.9.1 高级资源获取
绿宝石
骷髅头
下界之心
其他

结语

总结

下面该做什么?

​ 或许,你可以尝试学习 红石数电/模电 尝试制造游戏中的电脑或其他。过程将是无比的艰难,但只要坚持一定有所收获。亦或者你可以在视频网站发布自己的红石教程,用通俗易懂的语言教会更多玩家红石的玩法。你也可以学习编程语言,设计自己的我的世界启动器,插件,模组。你可以开设一台我的世界服务器,可以是原版生存/创造服,可以是小游戏综合服,可以是mod模组服……可以设计一台有趣的红石机器,可以开设一个红石交流论坛,可以创新更多玩法技术。没有什么做不到,没有什么做不成,因为,这是我的世界。

附录

生存生电科技树

致谢/引用